﻿//-----------------------------------------------------------------------
// <copyright file="RelationDef.cs" company="tuliprules.org">
//     Copyright (c) 2010 tuplelister, tuliprules.org.
// </copyright>
// <summary>This is the RelationDef class.</summary>
//-----------------------------------------------------------------------

namespace Tulip.Rules.CodeGen.Models.ClosedWorld
{
    using System.Collections.Generic;
    using System.Diagnostics.CodeAnalysis;

    /// <summary>
    /// Relation definition.
    /// </summary>
    [SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1401:FieldsMustBePrivate",
        Justification = "Reviewed. Suppression is OK here.")]
    public class RelationDef
    {
        /// <summary>
        /// The ID of the relation.
        /// </summary>
        public int Id;

        /// <summary>
        /// The name of the relation.
        /// </summary>
        public string Name;

        /// <summary>
        /// Reference to a tuple definition for this relation.
        /// </summary>
        public string TupleRef;

        /// <summary>
        /// Collection of indexes on this relation.
        /// </summary>
        public IEnumerable<IndexDef> Indexes;
    }
}
